λ°μ΄λ리 AST μ μ§μ λ‘λ© λ° μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ ν΅ν΄ JavaScript μ±λ₯μ λ―Έλλ₯Ό νμν΄ λ³΄μΈμ. μμ μκ°μ κ°μ νκ³ λ©λͺ¨λ¦¬ μλΉλ₯Ό μ€μ΄λ©° μ λ°μ μΈ μΉ μ ν리μΌμ΄μ ν¨μ¨μ±μ λμ΄λ λ°©λ²μ μμ보μΈμ.
JavaScript λ°μ΄λ리 AST μ μ§μ λ‘λ©: μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌ
μΉ κ°λ°μ λμμμ΄ μ§ννλ νκ²½μμ JavaScript μ±λ₯μ μ¬μ©μ κ²½νμ μ€μν μμλ‘ λ¨μ μμ΅λλ€. μΉ μ ν리μΌμ΄μ μ΄ μ μ λ 볡μ‘ν΄μ§μ λ°λΌ JavaScript λ‘λ© λ° μ€νμ μ΅μ ννλ κ²μ΄ κ°μ₯ μ€μν΄μ§κ³ μμ΅λλ€. λ°μ΄λ리 AST(Abstract Syntax Tree) μ μ§μ λ‘λ© λ° μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ μ΅μ λΈλΌμ°μ λ° JavaScript μμ§μμ JavaScriptλ₯Ό μ²λ¦¬νλ λ°©μμ νμ ν λ κ°μ§ κ³ κΈ κΈ°μ μ λλ€. μ΄ κΈ°μ¬μμλ μ΄λ¬ν κ°λ μ λν΄ μμΈν μ€λͺ νκ³ , μ΄μ , ꡬν κ³ λ € μ¬ν λ° μΉμ λ―ΈμΉλ μ μ¬μ μν₯μ μ€λͺ ν©λλ€.
AST(Abstract Syntax Tree)λ 무μμ λκΉ?
λ°μ΄λ리 AST λ° μ μ§μ λ‘λ©μ λν΄ μμ보기 μ μ AST(Abstract Syntax Tree)μ μν μ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. JavaScript μμ§μ΄ μ½λλ₯Ό λ§λλ©΄ 첫 λ²μ§Έ λ¨κ³λ ꡬ문 λΆμμ λλ€. ꡬ문 λΆμμ μμ JavaScript μ½λλ₯Ό μ½λ ꡬ쑰μ νΈλ¦¬μ κ°μ ννμΈ ASTλ‘ λ³νν©λλ€. μ΄ νΈλ¦¬ ꡬ쑰λ₯Ό ν΅ν΄ μμ§μ μ½λμ μλ―Έλ₯Ό μ΄ν΄νκ³ μ€νμ μ€λΉν μ μμ΅λλ€. ASTλ₯Ό JavaScript μ½λμ κ³ λλ‘ κ΅¬μ‘°νλ μ²μ¬μ§μ΄λΌκ³ μμν΄ λ³΄μΈμ.
μλ₯Ό λ€μ΄, JavaScript μ½λ const x = 1 + 2;λ ASTμμ λ€μκ³Ό κ°μ΄ ννλ μ μμ΅λλ€(κ°μνλ¨).
{
"type": "VariableDeclaration",
"declarations": [
{
"type": "VariableDeclarator",
"id": {
"type": "Identifier",
"name": "x"
},
"init": {
"type": "BinaryExpression",
"operator": "+",
"left": {
"type": "Literal",
"value": 1
},
"right": {
"type": "Literal",
"value": 2
}
}
}
],
"kind": "const"
}
μ΄ JSONκ³Ό μ μ¬ν ꡬ쑰λ λ³μ μ μΈ, μλ³μ λ° νΌμ°μ°μκ° μλ μ΄μ§ ννμμ λͺ ννκ² λ³΄μ¬μ€λλ€.
κ³Όμ : κΈ°μ‘΄ JavaScript λ‘λ© λ° μ»΄νμΌ
κΈ°μ‘΄μλ JavaScript λ‘λ© λ° μ»΄νμΌμ΄ λ€μκ³Ό κ°μ΄ μ§νλ©λλ€.
- λ€μ΄λ‘λ: μ 체 JavaScript νμΌμ΄ μλ²μμ λ€μ΄λ‘λλ©λλ€.
- ꡬ문 λΆμ: λ€μ΄λ‘λν μ½λκ° ASTλ‘ κ΅¬λ¬Έ λΆμλ©λλ€.
- μ»΄νμΌ: ASTκ° μ€νμ μν΄ λ°μ΄νΈμ½λ λλ λ¨Έμ μ½λλ‘ μ»΄νμΌλ©λλ€.
- μ€ν: μ»΄νμΌλ μ½λκ° μ€νλ©λλ€.
μ΄ λ°©μμ νΉν λμ©λ JavaScript νμΌμ λν΄ λͺ κ°μ§ κ³Όμ λ₯Ό μ μν©λλ€.
- μμ μ§μ° μκ°: μ¬μ©μλ μ ν리μΌμ΄μ μ΄ λννμ΄ λκΈ° μ μ μ 체 νμΌμ λ€μ΄λ‘λνκ³ κ΅¬λ¬Έ λΆμν λκΉμ§ κΈ°λ€λ €μΌ ν©λλ€. μ΄λ μ΄κΈ° νμ΄μ§ λ‘λ μκ°μ μλΉν μ§μ°μ μ΄λν©λλ€. μΈν°λ· μ°κ²° μλκ° λλ¦° μ§μμ μ¬μ©μλ₯Ό μμν΄ λ³΄μΈμ. μ΄λ¬ν μ§μ°μ λμ± λλλ¬μ§ μ μμ΅λλ€.
- λ©λͺ¨λ¦¬ μλΉ: μ»΄νμΌνλ λμ μ 체 ASTκ° λ©λͺ¨λ¦¬μ 보κ΄λμ΄μΌ ν©λλ€. μ΄λ λ©λͺ¨λ¦¬κ° μ νλ μ₯μΉ, νΉν λͺ¨λ°μΌ μ₯μΉμμ λ¬Έμ κ° λ μ μμ΅λλ€.
- μ°¨λ¨ μμ : ꡬ문 λΆμ λ° μ»΄νμΌμ UIλ₯Ό κ³ μ νκ³ μλ΅μ±μ μ ν΄ν μ μλ μ°¨λ¨ μμ μ΄ λ μ μμ΅λλ€.
λ°μ΄λ리 AST: λ κ°κ²°ν νν
λ°μ΄λ리 ASTλ ASTμ μ§λ ¬νλ λ°μ΄λ리 ννμ λλ€. ASTλ₯Ό ν μ€νΈ κΈ°λ° κ΅¬μ‘°(JSONκ³Ό κ°μ)λ‘ μ μ₯νλ λμ λ κ°κ²°ν λ°μ΄λ리 νμμΌλ‘ μΈμ½λ©λ©λλ€. μ΄λ λͺ κ°μ§ μ΄μ μ μ 곡ν©λλ€.
- νμΌ ν¬κΈ° κ°μ: λ°μ΄λ리 ASTλ ν μ€νΈ κΈ°λ°μ ASTλ³΄λ€ ν¨μ¬ μμ΅λλ€. μ¦, λ€μ΄λ‘λ μκ°μ΄ λ¨μΆλκ³ λμν μλΉκ° μ€μ΄λλλ€. λ§μ μΉ μ ν리μΌμ΄μ μ΄ μ μΈκ³ μ¬μ©μμκ² μλΉμ€λ₯Ό μ 곡νλ€λ μ μ κ³ λ €ν΄ λ³΄μΈμ. νμΌ ν¬κΈ°λ₯Ό μ€μ΄λ©΄ λ°μ΄ν° μκΈμ΄ μ νμ μ΄κ±°λ λΉμΌ μ¬μ©μμκ² λμμ΄ λ©λλ€.
- λ λΉ λ₯Έ ꡬ문 λΆμ: μΌλ°μ μΌλ‘ λ°μ΄λ리 ASTλ₯Ό ꡬ문 λΆμνλ κ²μ΄ μμ JavaScript ν μ€νΈλ₯Ό ꡬ문 λΆμνλ κ²λ³΄λ€ λΉ λ¦ λλ€. μμ§μ μ΄κΈ° ꡬ문 λΆμ λ¨κ³λ₯Ό 건λλ°κ³ 미리 ꡬ문 λΆμλ ꡬ쑰λ₯Ό μ§μ λ‘λν μ μμ΅λλ€.
- 보μ κ°μ : λ°μ΄λ리 νμμ μ½λλ₯Ό μμ€κ³νκΈ° λ μ΄λ ΅κ² λ§λ€μ΄ 보μμ κ°νν μ μμ΅λλ€. μμ νμ§λ μμ§λ§ μ μμ μΈ νμμλ‘λΆν° 보νΈνλ κ³μΈ΅μ μΆκ°ν©λλ€.
μ μ§μ λ‘λ©: λ 빨리 μμνκ³ , λ λ§μ μμ μ λ λΉ λ₯΄κ² μν
μ μ§μ λ‘λ©μ λ°μ΄λ리 AST κ°λ μ ν λ¨κ³ λ λ°μ μν΅λλ€. μ 체 λ°μ΄λ리 ASTκ° μ»΄νμΌμ μμνκΈ° μ μ λ€μ΄λ‘λλ λκΉμ§ κΈ°λ€λ¦¬λ λμ , μμ§μ ASTκ° λμ°©νλ λλ‘ λ μμ μ μ§μ μ²ν¬λ‘ μ²λ¦¬νκΈ° μμν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μ ν리μΌμ΄μ μ΄ λ 빨리 μ½λλ₯Ό μ€ννκΈ° μμνμ¬ μ²΄κ° μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
μλ λ°©μ:
- JavaScript νμΌμ λ°μ΄λ리 ASTλ‘ μΈμ½λ©λκ³ λ μμ μ²ν¬λ‘ λΆν λ©λλ€.
- λΈλΌμ°μ λ λ°μ΄λ리 AST μ²ν¬λ₯Ό λ€μ΄λ‘λνκΈ° μμν©λλ€.
- κ° μ²ν¬κ° λμ°©νλ©΄ μμ§μ΄ μ μ§μ μΌλ‘ ꡬ문 λΆμνκ³ μ»΄νμΌν©λλ€.
- μμ§μ μ 체 νμΌμ΄ λ€μ΄λ‘λλκΈ° μ μλ μ»΄νμΌλ μ½λλ₯Ό μ€ννκΈ° μμν μ μμ΅λλ€.
μ μ§μ λ‘λ©μ μ΄μ :
- λ λΉ λ₯Έ μμ μκ°: μ 체 νμΌμ΄ λ€μ΄λ‘λλκΈ° μ μ μ€νμ μμν μ μμΌλ―λ‘ μ ν리μΌμ΄μ μ΄ ν¨μ¬ λ λΉ λ₯΄κ² λννμ΄ λ©λλ€. μ΄λ λκ·λͺ¨ μ΄κΈ° JavaScript λ²λ€μ κ°μ§ μ μλ SPA(Single-Page Application)μ νΉν μ μ©ν©λλ€.
- λ©λͺ¨λ¦¬ μλΉ κ°μ: μμ§μ νμ¬ μ²λ¦¬ μ€μΈ AST μ²ν¬λ§ λ©λͺ¨λ¦¬μ 보κ΄νλ©΄ λλ―λ‘ μ 체 λ©λͺ¨λ¦¬ 곡κ°μ μ€μΌ μ μμ΅λλ€.
- μλ΅μ± κ°μ : ꡬ문 λΆμ λ° μ»΄νμΌ μν¬λ‘λλ₯Ό λΆμ°ν¨μΌλ‘μ¨ UIλ λ μλ΅μ±μ΄ μ’κ³ κ³ μ λ κ°λ₯μ±μ΄ μ μ΅λλ€.
μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌ: λ€μ λ¨κ³μ λ°μ
μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ λͺ¨λ μ»΄νμΌμ μ΅μ ννκΈ° μν΄ μ μ§μ λ‘λ©μ κΈ°λ°μΌλ‘ ν©λλ€. λͺ¨λ(import λ° export λ¬Έ μ¬μ©)μ μ΅μ JavaScript κ°λ°μ κΈ°λ³Έμ μΈ λΆλΆμ
λλ€. μ€νΈλ¦¬λ° μ»΄νμΌμ μ¬μ©νλ©΄ λΈλΌμ°μ κ° λͺ¨λ μ’
μμ±μ λ¨Όμ λ‘λν λκΉμ§ κΈ°λ€λ¦¬μ§ μκ³ μ€νΈλ¦¬λ°λλ λλ‘ μ΄λ¬ν λͺ¨λμ μ»΄νμΌν μ μμ΅λλ€.
μλ λ°©μ:
- λΈλΌμ°μ λ λͺ¨λ κ·Έλν(λͺ¨λ λͺ¨λμ μ’ μμ± νΈλ¦¬)λ₯Ό λ€μ΄λ‘λν©λλ€.
- λΈλΌμ°μ λ κ° λͺ¨λμ λν λ°μ΄λ리 ASTλ₯Ό λ€μ΄λ‘λνκΈ° μμν©λλ€.
- κ° λͺ¨λμ λ°μ΄λ리 ASTκ° μ€νΈλ¦¬λ°λλ©΄ μμ§μ΄ μ΄λ₯Ό μ»΄νμΌν©λλ€.
- μμ§μ μ 체 λͺ¨λ κ·Έλνκ° μμ ν λ€μ΄λ‘λλμ§ μμ κ²½μ°μλ μ’ μμ±μ μ¬μ©ν μ μλ μ¦μ λͺ¨λ μ€νμ μμν μ μμ΅λλ€.
μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ μ₯μ :
- λͺ¨λ λ‘λ© μ±λ₯ ν₯μ: νΉν μ’ μμ±μ΄ λ§μ 볡μ‘ν μ ν리μΌμ΄μ μμ λͺ¨λμ λ‘λνκ³ μ€ννλ λ° κ±Έλ¦¬λ μκ°μ μ€μ λλ€.
- λ³λ ¬ μ²λ¦¬ ν₯μ: λΈλΌμ°μ κ° μ¬λ¬ λͺ¨λμ λμμ μ»΄νμΌν μ μλλ‘ νμ¬ μ»΄νμΌ νλ‘μΈμ€λ₯Ό λμ± κ°μνν©λλ€.
- λ λμ 리μμ€ νμ©: νμμ λ°λΌ λͺ¨λμ μ»΄νμΌνμ¬ λ¦¬μμ€ ν λΉμ μ΅μ ννμ¬ λΆνμν κ³μ°μ μ€μ λλ€.
ꡬν κ³ λ € μ¬ν
λ°μ΄λ리 AST μ μ§μ λ‘λ© λ° μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ ꡬννλ €λ©΄ μ μ€ν κ³ λ €μ λκ΅¬κ° νμν©λλ€.
- λꡬ: κ°λ°μλ JavaScript μ½λλ₯Ό λ°μ΄λ리 AST νμμΌλ‘ λ³ννλ λκ΅¬κ° νμν©λλ€. μΌλ°μ μΌλ‘ νΉμ μ»΄νμΌλ¬ λλ λΉλ λꡬλ₯Ό μ¬μ©νλ κ²μ΄ ν¬ν¨λ©λλ€. λ°μ΄λ리 AST λ³νμ μ§μνλ μ¬λ¬ λΉλ λκ΅¬κ° λ±μ₯νκ³ μμ΅λλ€. μλ₯Ό λ€μ΄ Webpack, Parcel λ° esbuildμ© νλ¬κ·ΈμΈμ΄ μ 곡λκ³ μμ΅λλ€.
- λΈλΌμ°μ μ§μ: κ΄λ²μν μ±νμλ μ£Όμ λΈλΌμ°μ λ° JavaScript μμ§μ μ§μμ΄ νμν©λλ€. μΌλΆ μμ§μμ μ΄λ¬ν κΈ°μ μ μ€ννκ³ μμ§λ§, μ 체 μ§μμ μ¬μ ν λ°μ νκ³ μμ΅λλ€. λΈλΌμ°μ κΈ°λ₯ 릴리μ€λ₯Ό μ΅μ μνλ‘ μ μ§νλ κ²μ΄ μ€μν©λλ€.
- μλ² κ΅¬μ±: μλ²λ λ°μ΄λ리 AST νμΌμ μ μ ν MIME μ νμΌλ‘ μ 곡νλλ‘ κ΅¬μ±ν΄μΌ ν©λλ€. μ΄λ κ² νλ©΄ λΈλΌμ°μ κ° νμΌμ λ°μ΄λ리 ASTλ‘ μ¬λ°λ₯΄κ² ν΄μν©λλ€.
- λͺ¨λ νμ: μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ μ£Όλ‘ ES λͺ¨λ(
importλ°exportμ¬μ©)μ μ μ©λ©λλ€. κΈ°μ‘΄ λͺ¨λ νμ(CommonJSμ κ°μ)μλ λ€λ₯Έ μ΅μ ν μ λ΅μ΄ νμν μ μμ΅λλ€. - λλ²κΉ : λ°μ΄λ리 ASTλ λ°μ΄λ리 νΉμ±μΌλ‘ μΈν΄ λλ²κΉ νκΈ° μ΄λ €μΈ μ μμ΅λλ€. κ°λ°μλ ASTλ₯Ό ν΄μνκ³ μκ°νν μ μλ νΉμ λλ²κΉ λκ΅¬κ° νμν©λλ€. μμ€ λ§΅λ λλ²κΉ μ λ§€μ° μ€μν΄μ§λλ€.
λ€μν μ ν리μΌμ΄μ μ λ―ΈμΉλ μν₯
λ°μ΄λ리 AST μ μ§μ λ‘λ© λ° μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ μ΄μ μ μ ν리μΌμ΄μ μ νμ λ°λΌ λ€λ₯Ό μ μμ΅λλ€.
- SPA(Single-Page Application): λκ·λͺ¨ μ΄κΈ° JavaScript λ²λ€μ κ°μ§ SPAλ κ°μ₯ ν° μ±λ₯ ν₯μμ μ»μ μ μμ΅λλ€. μμ μκ° λ¨μΆ λ° λ©λͺ¨λ¦¬ μλΉ κ°μλ μ¬μ©μ κ²½νμ κ·Ήμ μΌλ‘ ν₯μμν¬ μ μμ΅λλ€. νλΆν μΈν°νμ΄μ€λ₯Ό κ°μΆ κ΅μ μ μ μκ±°λ μ¬μ΄νΈλ₯Ό κ³ λ €ν΄ λ³΄μΈμ. μ΄λ¬ν κΈ°μ μ μ λμν λ€νΈμν¬μμ μ΄κΈ° λ‘λ©μ κ°μ ν μ μμ΅λλ€.
- λκ·λͺ¨ μΉ μ ν리μΌμ΄μ : λͺ¨λκ³Ό μ’ μμ±μ΄ λ§μ 볡μ‘ν μΉ μ ν리μΌμ΄μ μ μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ ν΅ν΄ λ λΉ λ₯΄κ² λͺ¨λμ λ‘λνκ³ μ λ°μ μΈ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€. λ§μ μν°νλΌμ΄μ¦ μΉ μ±μ΄ μ΄λ¬ν μ΅μ νμ ν보μ λλ€.
- λͺ¨λ°μΌ μ ν리μΌμ΄μ : 리μμ€κ° μ νλ λͺ¨λ°μΌ μ₯μΉλ μ΄λ¬ν κΈ°μ μμ μ 곡νλ λ©λͺ¨λ¦¬ κ³΅κ° κ°μ λ° μλ΅μ± κ°μ μ ν° μ΄μ μ μ»μ μ μμ΅λλ€. κ°λ°λμκ΅μμ μ€λλ μ€λ§νΈν°μ μ¬μ©νλ κ²½μ° μ΄λ¬ν μ΅μ νλ μ¬μ© νΈμμ±μ λ§€μ° μ€μν©λλ€.
- PWA(Progressive Web App): μ€νλΌμΈ κΈ°λ₯μ μν΄ μ€κ³λ PWAλ λ°μ΄λ리 ASTλ₯Ό νμ©νμ¬ μΊμλ μμ° ν¬κΈ°λ₯Ό μ€μ¬ μ±λ₯κ³Ό μ¬μ©μ κ²½νμ λμ± ν₯μμν¬ μ μμ΅λλ€.
JavaScript μ±λ₯μ λ―Έλ
λ°μ΄λ리 AST μ μ§μ λ‘λ© λ° μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ JavaScript μ±λ₯ μ΅μ νμ μ€μν μ§μ μ λνλ λλ€. μ΄λ¬ν κΈ°μ μ΄ λ λ리 μ±νλ¨μ λ°λΌ μΉ μ ν리μΌμ΄μ μ ꡬμΆνκ³ μ 곡νλ λ°©μμ κ·Όλ³Έμ μΌλ‘ λ³κ²½ν μ μλ μ μ¬λ ₯μ΄ μμ΅λλ€. λ€νΈμν¬ μνλ μ₯μΉ κΈ°λ₯μ κ΄κ³μμ΄ μΉ μ ν리μΌμ΄μ μ΄ μ¦μ λ‘λλλ λ―Έλλ₯Ό μμν΄ λ³΄μΈμ. μ΄λ¬ν κΈ°μ μ κ·Έλ¬ν λ―Έλλ₯Ό μν κΈΈμ μ΄κ³ μμ΅λλ€.
μ΄λ¬ν λ°μ μ λν λ€μκ³Ό κ°μ λΆμΌμμ μλ‘μ΄ μ°κ΅¬ λ° κ°λ°μ λ¬Έμ μ½λλ€.
- κ³ κΈ μ½λ μ΅μ ν: λ°μ΄λ리 ASTλ μ½λλ₯Ό λμ± κ΅¬μ‘°μ μ΄κ³ ν¨μ¨μ μΌλ‘ νννμ¬ λμ± μ κ΅ν μ΅μ ν κΈ°μ μ μ¬μ©ν μ μλλ‘ ν©λλ€.
- 보μ κ°μ : λ°μ΄λ리 AST 보μμ λν μΆκ° μ°κ΅¬λ μ μ± μ½λλ‘λΆν° λ κ°λ ₯ν 보νΈλ₯Ό μ 곡ν μ μμ΅λλ€.
- νλ«νΌ κ° νΈνμ±: λ°μ΄λ리 AST νμμ νμ€ννλ©΄ νλ«νΌ κ° JavaScript μ€νμ μ©μ΄νκ² ν μ μμ΅λλ€.
κ²°λ‘
JavaScript λ°μ΄λ리 AST μ μ§μ λ‘λ© λ° μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ μΉ μ ν리μΌμ΄μ μ μ±λ₯μ ν¬κ² ν₯μμν¬ μ μλ κ°λ ₯ν κΈ°μ μ λλ€. νμΌ ν¬κΈ°λ₯Ό μ€μ΄κ³ , ꡬ문 λΆμ μλλ₯Ό κ°μ νλ©°, μ μ§μ μ»΄νμΌμ νμ±νν¨μΌλ‘μ¨ μ΄λ¬ν κΈ°μ μ μμ μκ°μ λ¨μΆνκ³ , λ©λͺ¨λ¦¬ μλΉλ₯Ό μ€μ΄λ©°, μλ΅μ±μ κ°μ νλ λ° κΈ°μ¬ν©λλ€. λΈλΌμ°μ μ§μκ³Ό λκ΅¬κ° μ±μν΄μ§μ λ°λΌ μ΄λ¬ν κΈ°μ μ κ΄λ²μν μ₯μΉ λ° λ€νΈμν¬ νκ²½μμ νμν μ¬μ©μ κ²½νμ μ 곡νκΈ° μν΄ λ Έλ ₯νλ μΉ κ°λ°μμκ² νμμ μΈ λκ΅¬κ° λ κ²μ λλ€. μ΄λ¬ν λ°μ μ λν μ΅μ μ 보λ₯Ό μ μ§νκ³ κ΅¬νμ μ€ννλ κ²μ λμμμ΄ μ§ννλ μΉ κ°λ° μΈκ³μμ μμ λκ°λ λ° λ§€μ° μ€μν©λλ€.
μ£Όμ λ΄μ©
- λ°μ΄λ리 ASTλ JavaScript νμΌ ν¬κΈ°λ₯Ό μ€μ΄κ³ ꡬ문 λΆμ μλλ₯Ό κ°μ ν©λλ€.
- μ μ§μ λ‘λ©μ ν΅ν΄ μ 체 νμΌμ λ€μ΄λ‘λνκΈ° μ μ μ€νμ μμν μ μμ΅λλ€.
- μ€νΈλ¦¬λ° λͺ¨λ μ»΄νμΌμ λͺ¨λ λ‘λ© μ±λ₯μ μ΅μ νν©λλ€.
- μ΄λ¬ν κΈ°μ μ SPA, λκ·λͺ¨ μΉ μ ν리μΌμ΄μ λ° λͺ¨λ°μΌ μ±μ νΉν μ μ©ν©λλ€.
- ꡬνμ μν΄μλ λΈλΌμ°μ μ§μ λ° λꡬμ λν μ΅μ μ 보λ₯Ό μ μ§νλ κ²μ΄ νμμ μ λλ€.
μ΄λ¬ν λ°μ μ μμ©ν¨μΌλ‘μ¨ κ°λ°μλ κΈλ‘λ² μ¬μ©μμκ² μ°μν μ¬μ©μ κ²½νμ μ 곡νλ λ λΉ λ₯΄κ³ , λ λ°μμ±μ΄ λ°μ΄λλ©°, λ ν¨μ¨μ μΈ μΉ μ ν리μΌμ΄μ μ λ§λ€ μ μμ΅λλ€.